 import axios from 'axios'
 import { ElLoading,ElMessage } from 'element-plus'
 // let loading= ElLoading.service({
	// 	     lock: true,
	// 	     text: 'Loading',
	// 	     background: 'rgba(0, 0, 0, 0.7)',
	// 	})
 //设置baseUrl
 console.log(import.meta.env.VITE_API_URL,'import.meta.env.VITE_API_URL')
 axios.defaults.baseURL = import.meta.env.VITE_API_URL;
// const config = {
//   // 默认地址请求地址，可在 .env.** 文件中修改
//   baseURL: import.meta.env.VITE_API_URL,
//   // 设置超时时间
//   timeout: ResultEnum.TIMEOUT as number,
//   // 跨域时候允许携带凭证
//   withCredentials: true
// };
 //设置请求头
 axios.defaults.headers.post["Content-Type"] = "application/json;charset=UTF-8";
 //设置超时
 axios.defaults.timeout = 10000;
 //请求拦截器
 axios.interceptors.request.use(
    config => {
		
		// 可以通过headers，查看+设置请求头
		  // config.headers['info'] = 'itheima666'
		  // 每次发送请求，都会执行这个回调函数
		  // console.log(config)
		  // 在发送请求之前做些什么,比如: 统一设置token
		  const token = localStorage.getItem('token')
		  // token存在，才携带
		  if (token) {
		    config.headers['Authorization'] = token
		  }
		  return config
    },
    error => {
		// loading.close()
		ElMessage.error(error)
        return Promise.reject(error);
    }
 );

 //响应拦截器
 axios.interceptors.response.use(
    response => {
        if (response.status == 200) {
			// loading.close()
            return Promise.resolve(response);
        } else {
            return Promise.reject(response);
        }
    },
    error => {
		// console.log(JSON.stringify(error.message))
		// loading.close()
		// console.dir(error)
		  // 超出 2xx 范围的状态码都会触发该函数。
		  // 对响应错误做点什么: 比如统一处理token失效
		  // 统一处理token失效
		  // if (error.response.status === 401) {
		  //   // 弹框提示用户
		  //   showToast('请重新登录')
		  //   // 删除缓存
		  //   localStorage.removeItem('token')
		  //   localStorage.removeItem('username')
		  //   // 返回登录页
		  //   setTimeout(() => {
		  //     location.href = 'login.html'
		  //   }, 1500)
		  // }
		  ElMessage.error(error)
		  return Promise.reject(error);
		
		
        // alert(`异常请求：${JSON.stringify(error.message)}`)
    }
 );
 
 //封装post/get请求
 export default {
    post(url, data) {
        return new Promise((resolve, reject) => {
            axios({
                    method: 'post',
                    url,
                    data,
                    //data: qs.stringify(data), //参数序列化
                })
                .then(res => {
					if(res){
						resolve(res.data)
					}
                    
                })
                .catch(err => {
                    reject(err)
                });
        })
    },

    get(url, data) {
        return new Promise((resolve, reject) => {
            axios({
                    method: 'get',
                    url,
                    params: data,
                })
                .then(res => {
					if(res){
						resolve(res.data)
					}
                    
                })
                .catch(err => {
                    reject(err)
                })
        })
    }
 };